package com.lrkj.payfee.service;

import com.lrkj.common.core.domain.entity.SysUser;
import com.lrkj.payfee.domain.*;
import com.lrkj.payfee.domain.vo.RoomNormVo;
import com.lrkj.payfee.vo.NormChargeVo;
import com.lrkj.property.domain.Community;

import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;

public interface ITollCenterService {


    /**
     * 创建房间费用
     */
    public int createRoomCost(RoomNormVo roomNormVo);


    //逐条创建房屋费用单
    public Map<String,Object> singleCreateRoomCost(TollCenter tollCenter) throws ParseException;

    /**
     * 房屋收费
     *
     * ***/
    public String roomCharge(Receipt receipt);


    /**
     * 获取费用周期
     * normChargeVo 收费标准|收费时间|房屋收费标准
     * lastMonthDay 缴费截止日
     * **/
    public List<Map<String, Date>> getCostCycle(NormChargeVo normChargeVo, Date lastMonthDay);


    /**
     * 创建收费单据
     * normChargeVo 收费标准|收费时间|房屋收费标准
     * map 费用周期
     * **/
    public RuleCost createRuleCost(NormChargeVo normChargeVo, Map<String, Date> map, Community community);

    /**
     * 更新房屋收费标准bean
     * normChargeVo 收费标准|收费时间|房屋收费标准
     * lastRuleCost 最后一张费用单
     * **/
    public RoomNorm createUpdateRoomNorm(NormChargeVo normChargeVo, RuleCost lastRuleCost);

    //创建费用单
    public void createFeeForm(NormChargeVo normChargeVo, SysUser user);


    /**
     * 计算费用
     * **/
    public int computePayfee(ComputePayFeeLog computePayFee);

}
